"use strict";
// 使用泛型来定义函数
function log(value) {
    console.log(value);
    return value;
}
log(['a', 'b']);
log(['a', 'b']);
var myLog = log;
myLog('1');
var Log1 = /** @class */ (function () {
    function Log1() {
    }
    Log1.prototype.run = function (value) {
        console.log(value);
        return value;
    };
    return Log1;
}());
var log1 = new Log1();
log1.run(1);
var log2 = new Log1();
log2.run({ a: 1 });
log2.run('1');
function log3(value) {
    console.log(value, value.length);
    return value;
}
log3([1]);
log3('123');
log3({ length: 1 });
// 泛型的好处
/***1，函数和类可以很轻松的支持多种类型，增强程序的扩展性
 *  2，不必写多条函数重载，冗长的联合类型声明，增强代码可读性
 * ·3，灵活控制类型之间的约束
 */ 
